-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;


-- -----------------------------------------------------
-- Table `mydb`.`livros`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`livros` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `codigo` VARCHAR(100) NOT NULL,
  `titulo` VARCHAR(1000) NOT NULL,
  `ano_de_publicacao` SMALLINT NOT NULL,
  `areas_tematicas` VARCHAR(1000) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`autores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`autores` (
  `id` INT NOT NULL,
  `nome_completo` VARCHAR(200) NULL,
  `nacionalidade` VARCHAR(200) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`livros_autores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`livros_autores` (
  `livros_id` INT NOT NULL,
  `autores_id` INT NOT NULL,
  `id` INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  INDEX `fk_livros_has_autores_autores1_idx` (`autores_id` ASC) VISIBLE,
  INDEX `fk_livros_has_autores_livros2_idx` (`livros_id` ASC) VISIBLE,
  CONSTRAINT `fk_livros_has_autores_livros2`
    FOREIGN KEY (`livros_id`)
    REFERENCES `mydb`.`livros` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_livros_has_autores_autores1`
    FOREIGN KEY (`autores_id`)
    REFERENCES `mydb`.`autores` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`estudantes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`estudantes` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `matricula` CHAR(20) NULL,
  `nome` VARCHAR(200) NULL,
  `curso` VARCHAR(100) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`emprestimos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`emprestimos` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `data_retirada` DATETIME NULL,
  `data_devolucao` DATETIME NULL,
  `livros_id` INT NOT NULL,
  `estudantes_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_emprestimos_livros1_idx` (`livros_id` ASC) VISIBLE,
  INDEX `fk_emprestimos_estudantes1_idx` (`estudantes_id` ASC) VISIBLE,
  CONSTRAINT `fk_emprestimos_livros1`
    FOREIGN KEY (`livros_id`)
    REFERENCES `mydb`.`livros` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_emprestimos_estudantes1`
    FOREIGN KEY (`estudantes_id`)
    REFERENCES `mydb`.`estudantes` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`livros_autores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`livros_autores` (
  `livros_id` INT NOT NULL,
  `autores_id` INT NOT NULL,
  `id` INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  INDEX `fk_livros_has_autores_autores1_idx` (`autores_id` ASC) VISIBLE,
  INDEX `fk_livros_has_autores_livros2_idx` (`livros_id` ASC) VISIBLE,
  CONSTRAINT `fk_livros_has_autores_livros2`
    FOREIGN KEY (`livros_id`)
    REFERENCES `mydb`.`livros` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_livros_has_autores_autores1`
    FOREIGN KEY (`autores_id`)
    REFERENCES `mydb`.`autores` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
